home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / thesource-7.lha / Source / DefFunc.lha / DefFunc / dfctoken.3 < prev    next >
Text File  |  1993-12-14  |  5KB  |  199 lines

  1.  
  2.  
  3.  
  4. DEFUNC(3)              C LIBRARY FUNCTIONS              DEFUNC(3)
  5.  
  6.  
  7.  
  8. NAME
  9.      getarguname,   nameargu,   namefnct,   namecnst,    clrfnct,
  10.      clrfnctall,  clrcnst,  clrcnstall  --  _d_e_f_u_n_c external token
  11.      management functions.
  12.  
  13. SYNOPSIS
  14.      #include <defunc.h>
  15.  
  16.      char*  getarguname(int arguidx);
  17.      int    nameargu(char* argu1, char* argu2);
  18.  
  19.      int    namefnct(char* name, double (*fn)());
  20.      int    namecnst(char* name, double);
  21.  
  22.      int    clrfnct(char* name);
  23.      int    clrfnctall(void);
  24.      int    clrcnst(char* name);
  25.      int    clrcnstall(void);
  26.  
  27.  
  28. DESCRIPTION
  29.      These functions are used in  managing  the  global  external
  30.      token  table.  _d_e_f_u_n_c  function _d_f_o_p_e_n() parse an expression
  31.      based on the tokens  it  recognized.  Except  for  numerical
  32.      string constant tokens(i.e. anonymous constant tokens) and 8
  33.      build in tokens "+", "-", "*", "/", "^", "(", ")", ","  plus
  34.      a  pseudo  token  "=", all other tokens are external tokens.
  35.      External tokens are usually be putted into  a  global  token
  36.      table  by  user.  They  include  2 argument tokens, function
  37.      tokens and named constant tokens. They can be  set/reset  or
  38.      added/deleted statically as well as dynamically.
  39.  
  40.      _g_e_t_a_r_g_u_n_a_m_e() return the name of  specific  argument  token.
  41.      This  will  be  useful  after  the argument tokens have been
  42.      reset. On success, _g_e_t_a_r_g_u_n_a_m_e() return a  char  pointer  to
  43.      the  name string. On error, e.g. a illegal argument index be
  44.      passed, it will return 0 pointer.
  45.  
  46.      _n_a_m_e_a_r_g_u() resets 2 arguments tokens. In _d_e_f_u_n_c, the default
  47.      token  names  for the 1st and 2nd arguments are "x" and "y".
  48.      A legal token name should start  with  alphabetic  character
  49.      and  followed  by  alphabetic  or  numberic  characters. The
  50.      length of a name is limited to 31 by _d_e_f_u_n_c. _n_a_m_e_a_r_g_u() will
  51.      return  (int)1  on success, (int)(-1) on error and (int)0 on
  52.      no change.  _d_e_f_u_n_c also provides an easy way to  change  the
  53.      argument  names  directly  from  the  expression  passed  to
  54.      _d_f_o_p_e_n() (see _d_e_f_u_n_c(_3) ).
  55.  
  56.      _n_a_m_e_f_n_c_t() Add a function token to the external token table.
  57.      If  another  token  with  the  same  name has already in the
  58.      table, then the old one will be overlapped except for it  is
  59.      a   argument   token.  Argument  token  items  can  only  be
  60.  
  61.  
  62.  
  63. defunc 1.2              Last change: 1993                       1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DEFUNC(3)              C LIBRARY FUNCTIONS              DEFUNC(3)
  71.  
  72.  
  73.  
  74.      overlapped by new arguments setting.  After a function token
  75.      being  successfully put into the token table, it can be used
  76.      in any _d_e_f_u_n_c expressions. _n_a_m_e_f_n_c_t() will return (int)1  on
  77.      success,  (int)(-1)  on  error  and  (int)0  on no changing.
  78.      _d_e_f_u_n_c also provides a dynamically way to expand  the  token
  79.      table  with  dynamically constructed functions directly from
  80.      expression passed to _d_f_o_p_e_n(). (see _d_f_o_p_e_n(_3) ).
  81.  
  82.      _n_a_m_e_c_n_s_t() puts a constant token into the token table.  This
  83.      will short the long expression in writting some special con-
  84.      stant. e.g.
  85.  
  86.           namecnst("pi", 2.0*asin(1.0));
  87.  
  88.      will add the name-constant association ("pi",  3.1415926...)
  89.      into  the  table. After that, the symbol "pi" can be used in
  90.      _d_e_f_u_n_c  expression  as  a  constant.   Same  as  _n_a_m_e_f_n_c_t(),
  91.      _n_a_m_e_c_n_s_t()  can  overlap  an  old function or constant token
  92.      item but can't overlap an argument token  item.   _n_a_m_e_c_n_s_t()
  93.      will return (int)1 on success, (int)(-1) on error and (int)0
  94.      on no changing. Like argument and function, _d_e_f_u_n_c also pro-
  95.      vides  an  way to expand token table with new constant token
  96.      item at runtime (see _d_f_o_p_e_n() ).
  97.  
  98.      _c_l_r_f_n_c_t(), _c_l_r_f_n_c_t_a_l_l(), _c_l_r_c_n_s_t(), _c_l_r_c_n_s_t_a_l_l() can be used
  99.      to  delete  a specific token or specific token type from the
  100.      token table.
  101.  
  102. SEE ALSO
  103.      _d_e_f_u_n_c, dfopen(3)
  104.  
  105. EXAMPLES
  106.           nameargu("re", "im");
  107.  
  108.      This will reset  argument  tokens  to  "re"  and  "im"  (the
  109.      default is "x" and "y").
  110.  
  111.           namefnct("log", log);
  112.           namefnct("ln" , log);
  113.  
  114.      This will add external function log() into token list with 2
  115.      alias names "log" and "ln".
  116.  
  117.           namecnst("pi", 2.0*asin(1.0));
  118.           namecnst("PI", 2.0*asin(1.0));
  119.  
  120.      This will put a named constant token into  the  token  table
  121.      with value 3.14159... and 2 alias names "pi" and "PI".
  122.  
  123. AUTHOR
  124.      Ke Jin
  125.      Physics Department
  126.  
  127.  
  128.  
  129. defunc 1.2              Last change: 1993                       2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. DEFUNC(3)              C LIBRARY FUNCTIONS              DEFUNC(3)
  137.  
  138.  
  139.  
  140.      Queen's University
  141.      Kingston, Ontario
  142.      Canada K7L 3N6
  143.      jinke@sparky.phy.queensu.ca
  144.  
  145. BUGS
  146.      Report bugs of _d_e_f_u_n_c library to the author by email.
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195. defunc 1.2              Last change: 1993                       3
  196.  
  197.  
  198.  
  199.